Systems and methods for real time data management in a collaborative environment

ABSTRACT

Systems and methods for real time data management in a collaborative environment. In one embodiment, the systems and methods dynamically link stakeholders, through a collaborative environment, to current and updated data. The systems and methods also cross-reference data objects between stakeholders for calling data objects by a common name, and determine a preferred method for each operation related to processing data for a data object.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application and U.S. patent application Ser. No. 12/418,367, whichis incorporated herein by reference, are commonly assigned to LandmarkGraphics Corporation.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH

Not applicable.

FIELD OF THE INVENTION

The present invention generally relates to systems and methods formanaging data, in real time, through a collaborative environment.

BACKGROUND OF THE INVENTION

Understanding and operating an oil and gas production asset as a singleholistic system has been frustrated by significant impediments. For anyasset, there are typically multiple applications, multiple data sets,multiple taxonomies and multiple users, also referred to herein asstakeholders, some or all of which may be sharing common data across theasset. Interoperability among these programs, persons, and structures asa single system, while desired, has been frustrated by the lack of anunderlying framework for handling the necessary transformations,translations, and definitions required between and among the varioussystem components.

Attempts to provide this understanding and operation have previouslyfocused on providing data replication, where each stakeholder groupdevelops or receives its own version of the logical network and datamodel that includes all of its requirements. In these attempts, the actof transforming the data model by correlating changes between the datamodel representations has not been done or has been done crudely.Although some level of interoperability has been achieved by point topoint integration, it is largely limited to supporting single workflows.Moreover, changes to the data model representations cannot beeffectively controlled when each stakeholder can decide whether suchchanges should be applied (accepted) and communicated to the otherstakeholders.

Other impediments to real time data management include, for example, theuse of different calls or names for the same data object and differentmethods for the same operation. Each data object and each operation mayrepresent a separate data model representation. Consequently, eachstakeholder's ability to effectively access updates to a data object anduniformly apply a preferred method to a particular operation aresignificantly impaired. A stakeholder, for example, may refer to thesame data object by a different name thus, impairing the ability tocommunicate changes to the data object between different stakeholders.Each stakeholder may also utilize a different method for a particularoperation when a preferred method is desired to maintain uniformoperation results. Moreover, a stakeholder is often required to log ontoa network to access a client server before downloading the desired datamodel representations or any changes made thereto. This sequence istypically required each time access to the data model is desired.

There is therefore, a need for systems and methods to provideuninterrupted interoperability among the various data sets,applications, taxonomies and stakeholders sharing data across aproduction asset. In other words, there is a need for dynamic linkingbetween the stakeholders and the data model representations that allowsthe stakeholders to maintain access to each database and receive datamodel updates in real time. In addition, there is a need for a uniformsystem that calls objects within an object class by a common name anddetermines a preferred method for each operation within a collaborativeenvironment.

SUMMARY OF THE INVENTION

The present invention therefore, meets the above needs and overcomes oneor more deficiencies in the prior art by providing systems and methodsfor cross-referencing data objects between stakeholders in order to calldata objects by a common name and determining a preferred method foreach operation related to processing data for a data object.

In one embodiment the present invention includes a computer implementedmethod for managing data in a collaborative environment, whichcomprises: i) creating a system name on a data-integration platform toidentify an object class; ii) selecting an object from the object class;iii) linking the object and the system name on the data-integrationplatform using a computer processor; iv) identifying a plurality ofunique names in the collaborative environment used by a respectiveplurality of stakeholders to identify the object; v) linking each uniquename for the object and the system name on the data-integrationplatform: vi) selecting another object from the object class: vii)linking the another object and the system name on the data-integrationplatform: viii) identifying a plurality of unique names in thecollaborative environment used by a respective plurality of stakeholdersto identify the another object: and ix) linking each unique name for theanother object and the system name on the data-integration platform.

In another embodiment, the present invention includes a non-transitoryprogram carrier device carrying computer executable instructions formanaging data in a collaborative environment. The instructions areexecutable to implement: i) creating a system name on a data-integrationplatform to identify an object class; ii) selecting an object from theobject class; iii) linking the object and the system name on thedata-integration platform; iv) identifying a plurality of unique namesin the collaborative environment used by a respective plurality ofstakeholders to identify the object; v) linking each unique name for theobject and the system name on the data-integration platform; vi)selecting another object from the object class; vii) linking the anotherobject and the system name on the data-integration platform: viii)identifying a plurality of unique names in the collaborative environmentused by a respective plurality of stakeholders to identify the anotherobject: and ix) linking each unique name for the another object and thesystem name on the data-integration platform.

Additional aspects, advantages and embodiments of the invention willbecome apparent to those skilled in the art from the followingdescription of the various embodiments and related drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is described below with references to theaccompanying drawings in which like elements are referenced with likereference numerals, and in which:

FIG. 1 is a block diagram illustrating one embodiment of a system forimplementing the present invention.

FIG. 2 is a block diagram illustrating one embodiment of a systemarchitecture for implementing the present invention.

FIG. 3A is a flow diagram illustrating one embodiment of a method forimplementing the present invention.

FIG. 3B is a flow diagram illustrating the continuation of the method inFIG. 3A.

FIG. 4 is a flow diagram illustrating another embodiment of a method forimplementing the present invention.

FIG. 5 is a flow diagram illustrating a standard workflow incorporatingthe present invention.

FIGS. 6A-6F illustrate enabling networking environments for implementingthe present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The subject matter of the present invention is described withspecificity, however, the description itself is not intended to limitthe scope of the invention. The subject matter thus, might also beembodied in other ways, to include different steps or combinations ofsteps similar to the ones described herein, in conjunction with otherpresent or future technologies. Moreover, although the term “step” maybe used herein to describe different elements of methods employed, theterm should not be interpreted as implying any particular order among orbetween various steps herein disclosed unless otherwise expresslylimited by the description to a particular order. While the followingdescription refers to the oil and gas industry, the systems and methodsof the present invention are not limited thereto and may also be appliedto other industries to achieve similar results.

System Description

The present invention may be implemented through a computer-executableprogram of instructions, such as program modules, generally referred toas software applications or application programs executed by a computer.The software may include, for example, routines, programs, objects,components, and data structures that perform particular tasks orimplement particular abstract data types. The software forms aninterface to allow a computer to react according to a source of input.DecisionSpace®, which is a commercial software application marketed byLandmark Graphics Corporation, may be used as an interface applicationto implement the present invention. The software may also cooperate withother code segments to initiate a variety of tasks in response to datareceived in conjunction with the source of the received data. Thesoftware may be stored and/or carried on any variety of memory mediasuch as CD-ROM, magnetic disk, bubble memory and semiconductor memory(e.g., various types of RAM or ROM). Furthermore, the software and itsresults may be transmitted over a variety of carrier media such asoptical fiber, metallic wire, free space and/or through any of a varietyof networks such as the Internet.

Moreover, those skilled in the art will appreciate that the inventionmay be practiced with a variety of computer-system configurations,including hand-held devices, multiprocessor systems,microprocessor-based or programmable-consumer electronics,minicomputers, mainframe computers, and the like. Any number ofcomputer-systems and computer networks are acceptable for use with thepresent invention. The invention may be practiced indistributed-computing environments where tasks are performed byremote-processing devices that are linked through a communicationsnetwork. In a distributed-computing environment, program modules may belocated in both local and remote computer-storage media including memorystorage devices. The present invention may therefore, be implemented inconnection with various hardware, software or a combination thereof, ina computer system or other processing system.

Referring now to FIG. 1, a block diagram of one embodiment of a systemfor implementing the present invention on a computer is illustrated. Thesystem includes a computing unit, sometimes referred to as a computingsystem, which contains memory, application programs, a client interface,and a processing unit. The computing unit is only one example of asuitable computing environment and is not intended to suggest anylimitation as to the scope of use or functionality of the invention.

The memory primarily stores the application programs, which may also bedescribed as program modules containing computer-executableinstructions, executed by the computing unit for implementing thepresent invention described herein and illustrated in FIGS. 2-5. Thememory therefore, includes a XREF Module, which enables the methodillustrated and described in reference to FIGS. 3A and 3B. The memoryalso includes a Shared Asset Module, which enables the methodillustrated and described in reference to FIG. 4. The Shared AssetModule includes a shared asset, also known as a system model, which isillustrated and described in reference to FIG. 2. The Shared Asset Modelmay also be used to enable the methods described in the '542Application. The systems and methods of the present invention therefore,may be based on a system model that correlates meta-data-modelrepresentations of a production asset with the various asset-logic modelrepresentations (or taxonomies), in real time, to provide acollaborative, consistent, and relevant representation of the asset tothe different stakeholders. The system model may perform thecorrelations between different meta-data model representations using thevarious asset-logic model representations for common data items andattributes shared across the system thus, addressing the many keyactivities relating to the asset that may have different meta-modelrepresentations representing their pertinent data requirements. In thismanner, effective interoperability may be achieved. The XREF Module andShared Asset Module also interact with DecisionSpace®, EDM™,StrataSteer, INSITE™, WITSML™ and BPM™ as further described in referenceto FIG. 2.

Although the computing unit is shown as having a generalized memory, thecomputing unit typically includes a variety of computer readable media.By way of example, and not limitation, computer readable media maycomprise computer storage media and communication media. The computingsystem memory may include computer storage media in the form of volatileand/or nonvolatile memory such as a read only memory (ROM) and randomaccess memory (RAM). A basic input/output system (BIOS), containing thebasic routines that help to transfer information between elements withinthe computing unit, such as during start-up, is typically stored in ROM.The RAM typically contains data and/or program modules that areimmediately accessible to and/or presently being operated on by theprocessing unit. By way of example, and not limitation, the computingunit includes an operating system, application programs, other programmodules, and program data.

The components shown in the memory may also be included in otherremovable/nonremovable, volatile/nonvolatile computer storage media. Forexample only, a hard disk drive may read from or write to nonremovable,nonvolatile magnetic media, a magnetic disk drive may read from or writeto a removable, non-volatile magnetic disk, and an optical disk drivemay read from or write to a removable, nonvolatile optical disk such asa CD ROM or other optical media. Other removable/non-removable,volatile/non-volatile computer storage media that can be used in theexemplary operating environment may include, but are not limited to,magnetic tape cassettes, flash memory cards, digital versatile disks,digital video tape, solid state RAM, solid state ROM, and the like. Thedrives and their associated computer storage media discussed abovetherefore, store and/or carry computer readable instructions, datastructures, program modules and other data for the computing unit.

A stakeholder may enter commands and information into the computing unitthrough the client interface, which may be input devices such as akeyboard and pointing device, commonly referred to as a mouse, trackballor touch pad. Input devices may include a microphone, joystick,satellite dish, scanner, or the like.

These and other input devices are often connected to the processing unittrough the client interface that is coupled to a system bus, but may beconnected by other interface and bus structures, such as a parallel portor a universal serial bus (USB). A monitor or other type of displaydevice may be connected to the system bus via an interface, such as avideo interface. In addition to the monitor, computers may also includeother peripheral output devices such as speakers and printer, which maybe connected through an output peripheral interface.

Although many other internal components of the computing unit are notshown, those of ordinary skill in the art will appreciate that suchcomponents and their interconnection are well known.

Referring now to FIG. 2, a block diagram of one embodiment of a systemarchitecture 200 for implementing the present invention is illustrated.The shared asset 214 is illustrated within the wider system architecture200 for collaboration among multiple stakeholders 218. Additional systemcomponents typically associated with a shared asset may include, forexample, different types of data 202 (e.g. interpretation data, planningdata and drilling data), data analytics engine 204, data-integrationplatform 216, data environment 208, workflow integration platform 210,software application environment(s) 212 and collaborative environment206. The various components of the system architecture 200 enablespecific inter-related functions and therefore, must interact with eachother seamlessly in order to avoid discontinuities and/or errors. Othercomponents of the system architecture 200 may include interfaces to andfrom an Enterprise Resource Planning System (e.g. SAP) or a computerizedMaintenance Management System, or a computerized Work Management Systemcontrolling work in the physical asset and necessary status of equipmentand system isolations.

The data analytics engine 204 allows data to be manipulated to producenumerous reports and analysis using simple to complex proprietary andindustry standard algorithms. It typically supports data filtering andcleaning as well as appropriate visualization technologies to presentdata in meaningful, relevant and insightful ways into the viewing orcollaborative environment 206 for use by the stakeholders 218.

The collaborative environment 206 typically represents a web-based(intranet or internet) access and viewing environment that can be usedby a diverse range of potential geographically located stakeholders 218,which will provide secure access and bandwidths appropriate to the rangeof data and software applications included in the system architecture200. The use of portals will typically allow diverse stakeholders 218 tohave relevant custom views of only the data they require. Thecollaborative environment 206 therefore, cooperates with the workflowintegration platform 210, the shared asset 214 and the data-integrationplatform 216 to present data to the stakeholders, as needed, in realtime based on the operations conducted in the data analytics engine 204.Thus, cooperation among the foregoing described components for thesystem architecture 200 enable a data environment capable of changing inreal time and/or an applications environment capable of selecting andusing preferred methods in real time.

The data environment 208 typically interfaces with some regulatory ordistributed control system incorporating data to and from instruments,meters, and control devices, such as actuators, valves and the like,across the physical asset. Considering the typical functions of eachcomponent, the data environment 208 typically includes multiple types ofdata 202, each designed to best suit particular types of data. Forexample, a relational database for interpretation data, a data historianfor high frequency planning data and a data warehouse for drilling datasuch as well tables and production allocation tables. The data willexist in one or more data languages, such as, for example, OPC, ODBC,HTML, WITSML, and PRODML, which are well known in the art and conform torespective corresponding data standards.

The workflow integration and orchestration platform 210 spans thevarious IT operating environments, connects to the numerous softwareapplications, maps to the respective data tags and items used by thesoftware applications and interfaces with some viewing or sharedcollaborative environments to interface and interact with numerousstakeholders 218 involved across the workflows. The workflows arenumerous but might include frequent and infrequent activities such as,for example, well test validation, production allocation, productionsurveillance, production optimization and others more particularlydescribed in U.S. patent application Ser. No. 12/266,766, which isincorporated herein by reference.

The software application environment(s) 212 includes different IToperating environments such as Windows and Linux, appropriate to therange of applications used across the asset. The software applicationenvironment(s) 212 may also include well known, proprietary applicationsfor providing diverse, complex, and relatively simple functionality.These applications, for example, may include petro-technical andgeoscience applications common to the industry as well as more commonsoftware applications commonly used such as MS Office. Theseapplications may also be used for, but not limited to, reservoir andwell simulation, modeling of hydraulic networks and facilities systems,material balance, nodal analysis, production allocation, productionsurveillance, hydrocarbon accounting, regulatory reporting, andeconomics. These applications may be proprietary or customized and willinvariably incorporate and use a multitude of algorithms, units, andannotations. These applications will also manipulate and transformexisting data and generate further data in ways unique to theapplications.

The shared asset 214 provides interoperability across the variousdiverse applications and datasets within the overall system architecture200. In other words, the shared asset 214 manages the numerousinterfaces and interactions between the data items and their correct andconsistent usage within the various logic schemes that arerepresentative of the system architecture 200. It does so in a dynamicoperating environment where all or many components may be usedsimultaneously and/or continuously by the stakeholders 218, each withspecific and varying access and authority rights. The shared asset 214therefore, may enable the method illustrated and described in referenceto FIG. 4 and the methods described in the '542 Application.

The data-integration platform 216 typically provides data connectorsappropriate to each data language and database. This component allowsthe stakeholders 218 to map to particular data sets such as assetequipment tags or unique well identifiers, thus enabling data flowthroughout the system architecture 200. The data-integration platform216 therefore, may enable the method illustrated and described inreference to FIGS. 3A and 3B.

DecisionSpace® for Production may be used to provide the systemarchitecture 200, component integration and set of functionalityillustrated in FIG. 2. The XREF Module provides the data-integrationplatform 216. WITSML™ provides the collaborative environment 206 fordynamically linking data organization and visualization within theoverall system architecture 200. DecisionSpace®, EDM™, StrataSteer™ andINSITE™ provide the technical applications for the software applicationenvironment(s) 212. The data environment 208 may include numerousdatabases that correspond with applications in the software applicationenvironment(s) 212. BPM™ provides the workflow integration platform 210,which enables orchestration or technical workflows that utilizetechnical applications and data from the related data 202 and softwareapplication environment(s) 212. DecisionSpace®, StrataSteer™ and EDM™may also be used as the data analytics engine 204, which is capable ofhandling both high volume and real time data about operations andaggregate historical data used for engineering purposes. The SharedAsset Module provides the shared asset 214, which includes the systemmodel. Each of the components jointly and separately benefit from thefunctionality provided by the shared asset 214.

The system architecture 200 integrates data entry/access by variousstakeholders 218 over one or more servers and makes new data availablefor the system model, in real time, to all stakeholders 218 without theneed for updated data requests from each stakeholder 218. The systemarchitecture 200 insures that all stakeholders 218 are dynamicallylinked to current data-meaning that each database 202 is constantlyaccessible, in real time, to all stakeholders 218 without having toperform the traditional procedures to access a particular database. Inother words, the system model is updated, in real time, each time newdata enters the system model through a client, which is accessible bythe stakeholders 218 through the dynamic link.

Referring now to FIGS. 6A-6F, various optional networking environmentsare illustrated in accordance with multiple embodiments of theinvention. The computers illustrated in FIGS. 6A-6F may include desktopcomputers, laptop computers, dedicated servers, supercomputers, personaldigital assistants (PDA's), other well known computing devices, or anycombination thereof.

FIG. 6A illustrates a local environment. The local environment mayinclude locally running a server/client 600. The server/client 600 mayprocess data according to the methods described herein.

FIG. 6B illustrates a collaboration hub networking environment. Acollaboration hub may include any computer that transmits data to andreceives data from multiple other computers. A collaboration hub mayalso be configured to incorporate changes received from multiple othercomputers into a single data object or other data instance. Acollaboration hub may also control application security settings for oneor more other computers. The collaboration hub networking environmentmay include a server/collaboration hub 602, which may process dataaccording to the methods described herein, as well as functioning as acollaboration hub. The collaboration hub networking environment may alsoinclude one or more collaboration clients 604, 606 that remotely accessdata, which is processed on the server/collaboration hub 602. In oneembodiment, the collaboration clients 604, 606 may also alter ormanipulate the processed data. These changes may be tracked, processed,or stored by the server/collaboration hub 602.

FIG. 6C illustrates a remote execution networking environment. Theremote execution networking environment may include a server 608, whichprocesses data according to the methods described herein. The remoteexecution networking environment may also include one or more clients610 that remotely access data processed on the server 608.

FIG. 6D illustrates a remote execution and collaboration networkingenvironment. The remote execution and collaboration networkingenvironment may include a server 612, which visibly or invisiblyprocesses data according to the methods described herein. The remoteexecution and collaboration networking environment may also include oneor more client/collaboration hubs 614. Each client/collaboration hub 614may remotely access data that is processed on the server 612. Eachclient/collaboration hub 614 may transmit data to, and receive datafrom, one or more collaboration clients 616, 618. Eachclient/collaboration hub 614 may also be configured to incorporatechanges received from collaboration clients 616, 618 into a single dataobject or other data instance. The client/collaboration hub 614 may alsocontrol security settings for collaboration clients 616, 618. Thecollaboration clients 616, 618 may remotely access data that isprocessed on the server 612 and transmitted via the client/collaborationhub 614. In one embodiment, the collaboration clients 616, 618 may alsoalter or manipulate the processed data. These changes may be tracked,processed, or stored by each client/collaboration hub 614 through windowand display state changes that are sent to the server 612 for processingand synchronization of all client interactions.

FIG. 6E illustrates an application service provider (ASP) networkingenvironment. The ASP networking environment may include one or moreservers 620, 622, 624, which process data according to the methodsdescribed herein. The ASP networking environment may also include one ormore client/ASP servers 626. Each client/ASP server 626 may receive datathat is processed on the servers 620, 622, 624. Each client/ASP server626 may include a computer that is configured to manage and distributesoftware-based services and solutions to customers across a wide area orother network from a central data center. In one embodiment, eachclient/ASP server 626 may be a third-party server that is owned oroperated by an entity separate from the entity owning and operating theservers 620, 622, 624 or the client 628. Each client/ASP server 626 maybe an enterprise ASP, which is designed to deliver high-end businessapplications; a local or regional ASP, which is designed to supply awide variety of application services for smaller businesses in a localarea; a specialist ASP, which is designed to provide applications for aspecific need; a vertical market ASP, which is designed to providesupport to a specific industry; or a volume business ASP, which isdesigned to supply small or medium-sized businesses with prepackagedapplication services in volume. The ASP networking environment may alsoinclude one or more clients 628 that remotely access data processed onthe servers 620, 622, 624 and transmit the data to each client 628 viathe client/ASP server 626.

FIG. 6F illustrates an ASP and collaboration networking environment. TheASP and collaboration networking environment may include one or moreservers 630, 632, 634, which process data according to the methodsdescribed herein. The ASP and collaboration networking environment mayalso include one or more client/ASP servers 636. Each client/ASP server636 may receive data that is processed on the servers 630, 632, 634.Each client/ASP server 636 may include a computer that is configured tomanage and distribute software-based services and solutions to customersacross a wide area or other network from a central data center. In oneembodiment, each client/ASP server 636 may include a third-party serverthat is owned or operated by an entity separate from the entity owningand operating the servers 630, 632, 634, the client/collaboration hub638, or the client 640, 642. Each client/ASP server 636 may be anenterprise ASP, which is designed to deliver high-end businessapplications; a local or regional ASP, which is designed to supply awide variety of application services for smaller businesses in a localarea; a specialist ASP, which is designed to provide applications for aspecific need; a vertical market ASP, which is designed to providesupport to a specific industry; or a volume business ASP, which isdesigned to supply small or medium-sized businesses with prepackagedapplication services in volume.

The ASP and collaboration networking environment may also include one ormore client/collaboration hubs 638. Each client/collaboration hub 638may remotely access data that is processed on the servers 630, 632, 634and is transmitted via the client/ASP server 636. Eachclient/collaboration hub 638 may transmit data to and receive data frommultiple clients 640, 642. The client/collaboration hub 638 may beconfigured to incorporate changes received from clients 640, 642 into asingle data object or other data instance. Each client/collaboration hub638 may also control security settings for the clients 640, 642. Theclients 640, 642 may also remotely access data that is processed on theservers 630, 632, 634, and transmitted via the client/ASP server 636 andthe client/collaboration hub 638. In another embodiment, thecollaboration clients 640, 642 may also alter or manipulate the rendereddata through window and display state changes that are sent to theservers 630, 632, 634 for processing and synchronization of all clientinteractions.

Method Description

Referring now to FIG. 3A, a flow diagram illustrates one embodiment of amethod 300 for implementing the present invention.

In step 302, a database is defined using a GUI or other means well knownin the art. A database, for example, may be defined for interpretationdata, planning data or drilling data relating to particular wells in anoil/gas field. Other databases may be defined for the same or differentdata relating to other wells in the same oil/gas field or other oil/gasfields. A database may be defined by creating it and populating it withinput data, or a database may be defined by identifying a preexistingdatabase. A preexisting database therefore, may be proprietary or ownedby a third party.

In step 304, a server is identified using a GUI or other means wellknown in the art. The server may be identified by its URL and password.

In step 306, the method 300 determines whether the server identified instep 304 is working. If the server is working, then the method 300continues to step 308. If the server is not working, then the method 300returns to step 304.

In step 308, the method 300 determines whether to identify a client byusing a GUI or other means well known in the art to prompt for thisrequest. If a client needs to be identified, then the method 300continues to step 310. If a client does not need to be identified, thenthe method 300 continues to step 314.

In step 310, a client is identified using a GUI or other means wellknown in the art. The client may be identified by its URL and password.

In step 312, the method 300 determines if the client identified in step310 is working. If the client is working, then the method 300 continuesto step 314. If the client is not working, then the method 300 returnsto step 310.

In step 314, the method 300 determines if more databases need to bedefined by using a GUI or other means well known in the art to promptfor this request. If more databases need to be defined, then the method300 returns to step 302. If more databases do not need to be defined,then the method 300 continues to step 316.

In step 316, a data-integration platform is populated with each serverand/or client identified in steps 304 and 310, respectively, and thelocation of each database defined in step 302 for a respective serverand/or client. If only a server is identified, then the data-integrationplatform is limited to only reading from the database(s) defined in step302. If, however, a server and a client are identified, then thedata-integration platform is capable of reading and writing from/to thedatabase(s) defined in step 302.

In step 318, a data type (object class) is selected from the database(s)that were populated in step 316 using a GUI or other means well known inthe art. An object class, for example, may include wells for aparticular production field.

In step 320, a name is created to identify the object class selected instep 318 using a GUI or other means well known in the art. The name, forexample, may be “Field 1 Wells.”

In step 322, an object is selected from the object class and is linkedto the name created in step 320 using a GUI or other means well known inthe art. Thus, for example, the object class name may be “Field 1 Wells”and the object selected from this class may be a particular well. Thewell is therefore, linked to the name Field 1 Wells.

In step 324, each unique name used by different respective stakeholdersfor calling the selected object is identified and linked to the namecreated for the object class in step 320. Each unique name for callingthe selected object may be identified by comparing data profiles or dataattributes for the selected object and one or more related objects, eachcontrolled by a respective stakeholder, to determine whether the dataprofile or the data attribute for the selected object and the dataprofile or the data attribute for the one or more related objectssubstantially identify the same object. If each unique namesubstantially identifies the same object, then each unique name may beidentified as being used for calling the selected object. The results ofthis step are stored in the data-integration platform, as across-reference table, which includes each server and/or clientidentified in steps 304 and 310, respectively. The data-integrationplatform therefore, may access interpretation data for wellbores (objectclass) associated with a particular well, which include interpretationdata in the form of well logs, trajectories and reports (objects) foreach wellbore. In the same manner, the data-integration platform mayaccess interpretation data for wells (object class) associated with aparticular oil/gas field, which may include wells and wellbores,surfaces and faults around each well (objects).

In step 326, the method 300 determines whether to select another objectby using a GUI or other means well known in the art to prompt for thisrequest. If another object needs to be selected from the object class,then the method 300 returns to step 322. If another object from theobject class does not need to be selected, then the method 300 continuesto step 328.

In step 328, the method 300 determines whether to repeat. If the method300 is repeated, then the method 300 returns to step 318. The method 300may be repeated for the same, or different, object classes and the same,or different, objects. If the method 300 does not repeat, then themethod 300 ends.

Steps 322-328 may be performed automatically for each object in eachobject class in a computer implemented method 300 until all objects havebeen selected (exhausted) for each object class. Alternatively, steps322-328 may be selectively performed for each object and each objectclass using a GUI or other means well known in the art.

The method 300 therefore, permits all objects (e.g. wells) from a namedobject class (e.g. Field 1 Wells) to be called (accessed) through acommon system name, regardless of what unique name each stakeholder usesto identify a particular object. This process, for example, creates across-reference table in the data-integration platform comprising one ormore objects, which permits a stakeholder to modify data related to anobject identified by a unique name and another stakeholder to call themodified data related to the object using another unique name. If, forexample, a stakeholder refers to a Well XYZ and another stakeholderrefers to the same well as Well ABC, then the method 300 calls that wellby a common system name created to identify the object class in step320. Thus, when a stakeholder modifies, or adds to, the data for WellXYZ, another stakeholder may call that data by accessing (calling) WellABC. In other words, when a stakeholder describes an object with aunique name and another stakeholder describes the same object withanother unique name, the method 300 permits the object to be identifiedto either stakeholder using each stakeholder's respective unique name.Each stakeholder therefore, may access all objects within an objectclass, and modified data related thereto, using a respective uniquename.

Referring now to FIG. 4, a flow diagram illustrates another embodimentof a method for implementing the present invention.

In step 402, a method is added to a shared asset using a GUI or othermeans well known in the art. The method may include, for example,subroutines that contain calculations or re-usable procedures. Theshared asset, which includes the methods, also may include data relatedto the shared asset.

In step 404, the methods added to the shared asset in step 402 areindexed by the shared asset according to operation. For example,interpretation calculations may be indexed to separate them fromdrilling calculations. In addition, various interpretation calculationsmay be indexed according to specific constraints. In other words, themethods may be indexed (organized) according to their intended use(operation) and their constraints.

In step 406, a preferred method is identified for each operation usingthe index (intended use and constraints) for each method. Optionally,additional predetermined criteria may be used to identify a preferredmethod.

In step 408, an operation is selected using a GUI or other means wellknown in the art.

In step 410, the preferred method for the operation selected in step 408is accessed from the shared asset. Applications may be built (ormodified if they already exist) so that they can access a preferredmethod from the shared asset for a selected operation.

In step 412, data is processed using the preferred method for theselected operation. Applications have the ability to execute thepreferred method from the shared asset, which means that thecalculations may be done on a computer controlled by the shared asset.Alternatively, applications may request a dynamically-bound instance ofthe preferred method physically compiled within the application forprocessing the data using the preferred method.

In step 414, the method 400 determines whether to add a method by usinga GUI or other means well known in the art to prompt for this request.If the method 400 determines that another method needs to be added, thenthe method 400 returns to step 402. If the method 400 determines thatanother method does not need to be added, then the method 400 ends. Asalternative methods are developed, they may be added to the shared assetin the manner thus described.

The method 400 therefore, provides an index of preferred methods forselected operations, which may be accessed through a collaborativeenvironment from a shared asset (system model) to insure uniformoperation results.

Referring now to FIG. 5, a flow diagram illustrates a standard workflow500 incorporating the present invention.

In step 502, an environment is defined, which may include the type ofdata and methods disclosed herein and described in the '542 Application.

In step 504, a subset is selected from the environment. This step simplyselects a preferred subset of the data and/or methods defined for theenvironment in step 502 for processing. For example, preferred databasesand data objects relevant to a particular geographical region may beselected as a subset of a larger geographical environment defined instep 502. This subset is declared the data for a job.

In step 506, a job is defined (set up) by identifying i) various phasessuch as, for example, interpretation, design, modeling, drilling, andupdating; ii) the methods/algorithms to process each data subset; iii) alist of rules that will define the stakeholders that will work with eachdata subset; and iv) the order (or workflow) that will be followed inthe integrated process.

In step 508, the job is executed for each phase defined in step 506. Forexample, a job may be executed in a particular order according to thephases defined in step 506. In addition, the methods described hereinand the methods described in the '542 Application are performed. Forexample, the method described in reference to FIG. 4 and the methodsdescribed in the '542 Application may yield a different preferred methodand controlling stakeholder, respectively, depending upon which phase iscurrently being executed or performed. In other words, a selectedoperation may have a preferred method during the interpretation phase,which is different than the preferred method for the same operationduring the design phase. Likewise, data controlled by a particularstakeholder during the interpretation phase may be controlled by adifferent stakeholder during the design phase. Results of this step mayinclude data being updated, changed or created. Because the workflow 500utilizes an integrated platform, the data is broadcast according to therules described in reference to FIG. 3B.

In step 510, the results of the job are reported, archived and finalizedbefore the method 500 ends.

While the present invention has been described in connection withpresently preferred embodiments, it will be understood by those skilledin the art that it is not intended to limit the invention to thoseembodiments. It is therefore, contemplated that various alternativeembodiments and modifications may be made to the disclosed embodimentswithout departing from the spirit and scope of the invention defined bythe appended claims and equivalents thereof.

The invention claimed is:
 1. A computer-implemented method for managingdata in a collaborative environment, the computer-implemented methodcomprising: creating, by a processing unit, an object-class name thatidentifies an object class within the collaborative environment, theobject class being a group of objects that are related to a particularwell system; selecting, by the processing unit, an object from theobject class, the object having information that is associated with theparticular well system; linking, by the processing unit and within thecollaborative environment, the object to the object-class name;identifying, by the processing unit, a plurality of unique names used bya plurality of stakeholders to identify the object in the collaborativeenvironment; and linking, by the processing unit and within thecollaborative environment, each unique name of the plurality of uniquenames to the object-class name to form an association between (i) theplurality of unique names, (ii) the object-class name, and (iii) theobject, wherein the association enables the object to be called usingany of the unique names in the plurality of unique names.
 2. Thecomputer-implemented method of claim 1, wherein the object is selectedfrom the object class in a database, the object comprising data relatedto the object.
 3. The computer-implemented method of claim 2, furthercomprising: identifying a server and a client, the server or the clientcomprising the database; and providing an identification of the serverand the client accessing the database.
 4. The computer-implementedmethod of claim 1, further comprising: calling the object by a firstunique name of the plurality of unique names and a second unique name ofthe plurality of unique names.
 5. The computer-implemented method ofclaim 1, wherein identifying the plurality of unique names for theobject comprises: comparing a first data profile for the object to asecond data profile a related object to determine whether the first dataprofile and the second data profile substantially identify a sameobject.
 6. The computer-implemented method of claim 1, furthercomprising: modifying the object to create a modified object; andcalling the modified object by at least two different unique names ofthe plurality of unique names.
 7. The computer-implemented method ofclaim 1, further comprising, for each respective object in the objectclass: selecting the respective object; linking the respective object tothe object-class name in the collaborative environment; identifying arespective plurality of unique names used by a respective plurality ofstakeholders to identify the respective object in the collaborativeenvironment; and linking, within the collaborative environment, eachunique name in the respective plurality of unique names to theobject-class name to form a respective association between (i) therespective plurality of unique names, (ii) the object-class name, and(iii) the respective object, wherein the respective association enablesthe respective object to be called using any of the unique names in therespective plurality of unique names.
 8. The computer-implemented methodof claim 1, further comprising repeating the steps of claim 1 formultiple different object classes.
 9. A non-transitory computer readablemedium comprising program code that is executable by a processing unitfor causing the processing unit to: create an object-class name thatidentifies an object class within a collaborative environment, theobject class being a group of objects that are related to a particularwell system; select an object from the object class, the object havinginformation that is associated with the particular well system; link,within the collaborative environment, the object to the object-classname; identify a plurality of unique names used by a plurality ofstakeholders to identify the object in the collaborative environment;and link, within the collaborative environment, each unique name of theplurality of unique names to the object-class name to form anassociation (i) the plurality of unique names, (ii) the object-classname, and (iii) the object, wherein the association enables the objectto be called using any of the unique names in the plurality of uniquenames.
 10. The non-transitory computer readable medium of claim 9,wherein the object is selected from the object class in a database, theobject comprising data related to the object.
 11. The non-transitorycomputer readable medium of claim 10, further comprising program codethat is executable by the processing unit for causing the processingunit to: Identify a server and a client, the server or the clientcomprising the database; and provide an identification of the server andthe client to the collaborative environment for enabling thecollaborative environment to access the database.
 12. The non-transitorycomputer readable medium of claim 9, further comprising program codethat is executable by the processing unit for causing the processingunit to: call the object by a first unique name of the plurality ofunique names and a second unique name of the plurality of unique names.13. The non-transitory computer readable medium of claim 9, whereinidentifying the plurality of unique names for the object comprises:comparing a first data profile for the object to a second data profile arelated object to determine whether the first data profile and thesecond data profile substantially identify a same object.
 14. Thenon-transitory computer readable medium of claim 13, further comprisingprogram code that is executable by the processing unit for causing theprocessing unit to: modify the object to create a modified object; andcall the modified object by at least two different unique names of theplurality of unique names.
 15. The non-transitory computer readablemedium of claim 9, further comprising program code that is executable bythe processing unit for causing the processing unit to, for eachrespective object in the object class: select the respective object;link the respective object to the object-class name in the collaborativeenvironment; identify a respective plurality of unique names used by arespective plurality of stakeholders to identify the respective objectin the collaborative environment; and link, within the collaborativeenvironment, each unique name in the respective plurality of uniquenames to the object-class name to form a respective association between(i) the respective plurality of unique names, (ii) the object-classname, and (iii) the respective object, wherein the respectiveassociation enables the respective object to be called using any of theunique names in the respective plurality of unique names.
 16. Thenon-transitory computer readable medium of claim 9, further comprisingprogram code that is executable by the processing unit for causing theprocessing unit to repeat the steps of claim 11 for multiple differentobject classes.
 17. A system comprising: a processing unit; and a memoryon which instructions executable by the processing unit are stored forcausing the processing unit to: create an object-class name thatidentifies an object class within a collaborative environment, theobject class being a group of objects that are related to a particularwell system; select an object from the object class, the object havinginformation that is associated with the particular well system; link,within the collaborative environment, the object to the object-classname; identify a plurality of unique names used by a plurality ofstakeholders to identify the object in the collaborative environment;and link, within the collaborative environment, each unique name of theplurality of unique names to the object-class name to form anassociation between (i) the plurality of unique names, (ii) theobject-class name, and (iii) the object, wherein the association enablesthe object to be called using any of the unique names in the pluralityof unique names.
 18. The system of claim 17, wherein the memory furthercomprises instructions executable by the processing unit for causing theprocessing unit to identify the plurality of unique names for the objectby: comparing a first data profile for the object to a second dataprofile for a related object to determine whether the first data profileand the second data profile substantially identify a same object. 19.The system of claim 17, wherein the memory further comprisesinstructions executable by the processing unit for causing theprocessing unit to: modify the object to create a modified object; andcall the modified object by at least two different unique names of theplurality of unique names.
 20. The system of claim 17, wherein thememory further comprises instructions executable by the processing unitfor causing the processing unit to, for each respective object in theobject class: select the respective object; link the respective objectto the object-class in the collaborative environment; identify arespective plurality of unique names used by a respective plurality ofstakeholders to identify the respective object in the collaborativeenvironment; and link, within the collaborative environment, each uniquename in the respective plurality of unique names to the object-classname to form a respective association between (i) the respectiveplurality of unique names, (ii) the object-class name, and (iii) therespective object, wherein the respective association enables therespective object to be called using any of the unique names in therespective plurality of unique names.